/**
 * 根据身份证号获取年龄
 * https://www.jb51.net/article/201996.htm
 * 暂时没有15位的需求
根据身份证号码判断性别
15位身份证号码：第7、8位为出生年份(两位数)，第9、10位为出生月份，第11、12位代表出生日
18位身份证号码：第7、8、9、10位为出生年份(四位数)，第11、第12位为出生月份，
第13、14位代表出生日期，第17位代表性别，奇数为男，偶数为女。
*/
export function getAgeByIdCard(idCard) {
  let len = (idCard + '').length
  let strBirthday = ''
  if (len === 18) {
    // 处理18位的身份证号码从号码中得到生日和性别代码
    strBirthday =
      idCard.substr(6, 4) +
      '/' +
      idCard.substr(10, 2) +
      '/' +
      idCard.substr(12, 2)
  }
  // if (len == 15) {
  //   let birthdayValue = "";
  //   birthdayValue = idCard.charAt(6) + idCard.charAt(7);
  //   if (parseInt(birthdayValue) < 10) {
  //       strBirthday =
  //       "20" +
  //       idCard.substr(6, 2) +
  //       "/" +
  //       idCard.substr(8, 2) +
  //       "/" +
  //       idCard.substr(10, 2);
  //   } else {
  //     strBirthday =
  //     "19" +
  //     idCard.substr(6, 2) +
  //     "/" +
  //     idCard.substr(8, 2) +
  //     "/" +
  //     idCard.substr(10, 2);
  //   }
  // }
  // 时间字符串里，必须是“/”
  let birthDate = new Date(strBirthday)
  let nowDateTime = new Date()
  let age = nowDateTime.getFullYear() - birthDate.getFullYear()
  // 再考虑月、天的因素;.getMonth()获取的是从0开始的，这里进行比较，不需要加1
  if (
    nowDateTime.getMonth() < birthDate.getMonth() ||
    (nowDateTime.getMonth() === birthDate.getMonth() &&
    nowDateTime.getDate() < birthDate.getDate())
  ) {
    age--
  }
  return age
}

// 根据身份证号获取性别
// （0女 1男）
export function getGenderByIdCard(idCard) {
  return parseInt(idCard.slice(-2, -1)) % 2 === 1 ? 1 : 0
}
